package br.com.cnpv.managebean.oficina;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import br.com.cnpv.modelo.bo.CidadeBO;
import br.com.cnpv.modelo.bo.EstadoBO;
import br.com.cnpv.modelo.bo.OficinaBO;
import br.com.cnpv.modelo.entity.Cidade;
import br.com.cnpv.modelo.entity.Oficina;

@ManagedBean(name="oficinaMB")
@SessionScoped
public class OficinaMB extends OficinaBean {

	public String paginaNovo()
	{
		try
		{
			oficina = new Oficina();
			
			// bo
			EstadoBO estadoBO = EstadoBO.getInstance();

			
			// listas
			estadoList = estadoBO.listar();
			
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		
		return "pretty:novaOficina";
	}
	
	public String paginaBusca()
	{
		try
		{
		
			OficinaBO oficinaBO = OficinaBO.getInstance();
		
		
			oficinaList = oficinaBO.listar();
			
		}catch(Exception e)
		{
			FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_FATAL, "", "Ocorreu um erro. Tente mais tarde");
			FacesContext.getCurrentInstance().addMessage(null, message);
			e.printStackTrace();
		}
		
		return "pretty:oficina";
	}
	
	public void buscar()
	{
		try
		{
			OficinaBO oficinaBO = OficinaBO.getInstance();
			
			oficinaList = oficinaBO.buscar(oficina);
			
		}catch(Exception e)
		{
			FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_FATAL, "", "Ocorreu um erro. Tente mais tarde");
			FacesContext.getCurrentInstance().addMessage(null, message);
			e.printStackTrace();
		}
	}
	
	public String paginaAlterar()
	{
		try
		{
			// BO
			CidadeBO cidadeBO = CidadeBO.getInstance();
			EstadoBO estadoBO = EstadoBO.getInstance();
			estadoList = estadoBO.listar();
			
			oficina = oficinaSelecionada;
			
			Cidade cidade = cidadeBO.getCidade(oficina.getIdCidade());
			cidadeList = cidadeBO.listarCidades(cidade.getIdUnidadeFederativa());
			
			idEstado = cidade.getIdUnidadeFederativa();
			
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		
		return "pretty:alterarOficina";
	}
	
	public void listaCidades()
	{
		try
		{
			//BO
			CidadeBO cidadeBO = CidadeBO.getInstance();
			
			cidadeList = cidadeBO.listarCidades(idEstado);
			
		}catch(Exception e)
		{
			FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_FATAL, "", "Ocorreu um erro. Tente mais tarde");
			FacesContext.getCurrentInstance().addMessage(null, message);
			e.printStackTrace();
		}
	}
}
